home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 4 / FM Towns Free Software Collection 4 - Disc 1.iso / fb386 / pickup / menu.bas < prev    next >
BASIC Source File  |  1991-10-18  |  23KB  |  519 lines

  1. 1000 '
  2. 1010 '   PICKUP TOWNS MENU  
  3. 1020 '
  4. 1030 '        初期設定
  5. 1040 '
  6. 1050 CLEAR ,,4096,100000:CLS
  7. 1060 SCREEN@ 0:I=0:GOSUB *PAL
  8. 1070 WIDTH 80,25: CONSOLE 0,25,0:GOSUB *PROP_INITIAL
  9. 1080 COLOR 0,%15,0,4:CLS 0:DAT=VAL(RIGHT$(DATE$,2))
  10. 1090 FOR I=0 TO 15 : PART I,I : NEXT I
  11. 1100 S$="U0%CQ8V8L4":PLAY S$,S$,S$,S$,S$,S$,S$,S$,S$,S$,S$,S$,S$,S$,S$,S$
  12. 1110 ON ERROR GOTO *エラー処理
  13. 1120 MEMO_F=0 : GOSUB *PTMEMO :MI = MM_MI
  14. 1130 '
  15. 1140 '        BG描画
  16. 1150 '
  17. 1160 DIM BG%(INT((INT(460+7)/8)*200*4+2-1)/2)
  18. 1170 LOAD@ "title.put",BG%
  19. 1180 PUT@A(330,300)-(330+(460),300+(200)),BG%,PSET,.5!,.5!
  20. 1190 LINE(0,0)-(639,61),PSET,%7,BF
  21. 1200 LINE(0,0)-(19,479),PSET,%7,BF
  22. 1210 LINE(594,0)-(639,479),PSET,%7,BF
  23. 1220 LINE(0,449)-(639,479),PSET,%7,BF
  24. 1230 PROP_X%=80:PROP_Y%=10:PROP$="Pickup TOWNS 自作曲・クラシック音楽集":PROP0!=1:PROP1!=1.5!:PROP2%=0:PROP3%=1:PROP4%=3:PROP5%=0
  25. 1240 GOSUB *PROP_PRINT
  26. 1250 BRX0=600:BRX1=632:BRY0=83:BRY1=428
  27. 1260 LINE(BRX0,BRY0-20)-(BRX1,BRY0),PSET,%10,BF
  28. 1270 LINE(BRX0,BRY0-20)-(BRX1,BRY0),PSET,%0,B
  29. 1280 LINE(BRX0,BRY1+20)-(BRX1,BRY1),PSET,%4,BF
  30. 1290 LINE(BRX0,BRY1+20)-(BRX1,BRY1),PSET,%0,B
  31. 1300 SYMBOL (608,67),"↑",1,.7!,%0,,,1
  32. 1310 SYMBOL (608,433),"↓",1,.7!,%0,,,1
  33. 1320 SYMBOL (246,455),"MENU PROGRAM (C) 1991 スタジオ鶏鳴",1,1,%0,,,,1
  34. 1330 SYMBOL (245,455),"MENU PROGRAM (C) 1991 スタジオ鶏鳴",1,1,%0,,,,1
  35. 1340 DIM PIC%(312)
  36. 1350 NN=0
  37. 1360 RESTORE *ICON_PTN
  38. 1370 FOR I=256 TO 312 : PIC%(I)=0 : NEXT I
  39. 1380 FOR N=0 TO 1
  40. 1390 GOSUB *ICON_READ
  41. 1400 PUT@A (500+45*N,10+50*NN)-(531+45*N,41+50*NN),PIC%
  42. 1410 GET@  (500+45*N,10+50*NN)-(531+45*N,41+50*NN),PIC%,%10
  43. 1420 PUT@  (500+45*N,10+50*NN)-(531+45*N,41+50*NN),PIC%,PSET,%15
  44. 1430 NEXT N
  45. 1440 MOUSE 0:GOSUB *MOUSE_PTN:MOUSE 1,320,240,0:MOUSE 4,0,0,631,463
  46. 1450 CCOL=0
  47. 1460 FOR I=0 TO 15:GOSUB *PAL:FOR N=0 TO 256:NEXT:NEXT
  48. 1470 WA1(0)=.1! : WA2(0)=.9!
  49. 1480 WA1(1)=.35! : WA2(1)=.15!
  50. 1490 WA1(2)=.6! : WA2(2)=.4!
  51. 1500 WA1(3)=.85! : WA2(3)=.65!
  52. 1510 WA1(4)=.225! : WA2(4)=.025!
  53. 1520 WA1(5)=.475! : WA2(5)=.275!
  54. 1530 WA1(6)=.725! : WA2(6)=.525!
  55. 1540 WA1(7)=.975! : WA2(7)=.775!
  56. 1550 GOTO *MAIN
  57. 1560 '
  58. 1570 '        FILE READ
  59. 1580 '
  60. 1590 *FILE_READ
  61. 1600 MOUSE 1,,,0:LINE(544,9)-STEP(33,33),XOR,%15,BF:CLS 4':GOSUB *VOLUME
  62. 1610 RESTORE *PICSYS_MUSIC_F:A=0
  63. 1620 READ A$:IF A$<>"END" THEN A=A+1:READ B$,C$,D$:GOTO 1620
  64. 1630 RESTORE *PICSYS_MUSIC_F
  65. 1640 DIM NAM_F$(A),TIT_F$(A+1),PRG_F$(A),ART_F$(A),VOL_F$(A),SUM_F$(A+1)
  66. 1650 FOR I=0 TO A-1
  67. 1660 '   READ NAM_F$(I),TIT_F$(I),PRG_F$(I),ART_F$(I),VOL_F$(I),SUM_F$(I)
  68. 1670    READ TIT_F$(I),PRG_F$(I),ART_F$(I),NAM_F$(I)
  69. 1680    IF ART_F$(I)="" THEN ART_F$(I)=PRG_F$(I)
  70. 1690 '   READ A$:NAM_F$(I)=A$:TIT_F$(I)=A$:PRG_F$(I)=A$
  71. 1700    TIT_F$(I)=LEFT$(TIT_F$(I)+STRING$(80," "),70)
  72. 1710 NEXT I:LINE(544,9)-STEP(33,33),XOR,%15,BF
  73. 1720 I=1:MOUSE 1,,,1
  74. 1730 IF MOUSE(2,1)=-1 THEN 1730
  75. 1740 IF MI<0 THEN MI=0
  76. 1742 IF MI>A THEN MI=0
  77. 1750 RETURN
  78. 1760 '
  79. 1770 '        FILE LIST UP 
  80. 1780 '
  81. 1790 *LIST_UP
  82. 1800 MY=A:IF MY<10 THEN MY1=10 ELSE MY1=MY
  83. 1810 IF MI<0 THEN MI=0
  84. 1820 BY0=BRY0+MI/MY1*344:BY1=BRY0+(MI+10)/MY1*344
  85. 1830 LINE(BRX0,BRY0)-(BRX1,BY0-1),PSET,%0,BF
  86. 1840 LINE(BRX0,BY0)-(BRX1,BY1),PSET,%11,BF
  87. 1850 R=(BRX1-BRX0)/2 * .6!*90/BY0:DEF PEN 0,4*90/BY0:II=INT(RND(1)*8)
  88. 1860 CIRCLE((BRX0+BRX1)/2,BY0+(BY1-BY0+BRX1-BRX0)/2-8),R,,,WA1(II)-.01!,WA2(II)+.01!
  89. 1870 DEF PEN 0,1:LINE(BRX0+5,BY0+5)-(BRX1-5,BY0+25),PSET,%0,BF
  90. 1880 SIRYOKU=3.3575!*10^(-5)*BY0^2-5.694!*10^(-3)*BY0+.341304!
  91. 1890 SYMBOL (BRX0-5,BY0+6),LEFT$(STR$(SIRYOKU),4),1,1,%15
  92. 1900 LINE(BRX0,BY0)-(BRX1,BY1),PSET,%0,B
  93. 1910 LINE(BRX0,BY1+1)-(BRX1,BRY1),PSET,%0,BF
  94. 1920 FOR II=1 TO 10
  95. 1930   LOCATE 4,2+II*2 : COLOR CCOL:PRINT TIT_F$(II-1+MI)
  96. 1940   IF II+MI=MY THEN 1960 
  97. 1950 NEXT II
  98. 1960 RETURN
  99. 1970 '
  100. 1980 '
  101. 1990 *DISPLAY
  102. 2000 MOUSE 1,,,0:CLS 4:COLOR CCOL
  103. 2010 LOCATE 3, 4:PRINT "♪  曲名"  :LOCATE  3, 5:PRINT TIT_F$(I-1+MI)
  104. 2020 LOCATE 3, 7:PRINT "♪  プログラム":LOCATE  3, 8:PRINT PRG_F$(I-1+MI)
  105. 2030 LOCATE 3,10:PRINT "♪  作曲":LOCATE  3,11:PRINT ART_F$(I-1+MI)
  106. 2040 LOCATE 3,15:PRINT "♪  ファイル名":LOCATE  3,16:PRINT NAM_F$(I-1+MI)
  107. 2050 LOCATE 3,18:PRINT "♪  備考":LOCATE 3,19:PRINT SUM_F$(I-1+MI)
  108. 2060 GOSUB *MOUSE_WAIT
  109. 2070 LOCATE 0,21:CLS 4:MOUSE 1,,,1
  110. 2080 RETURN
  111. 2090 '
  112. 2100 '        実行
  113. 2110 '
  114. 2120 *EXECUTE
  115. 2130 COLOR 2 :LOCATE 4,2+I*2: PRINT TIT_F$(I-1+MI):COLOR 7
  116. 2140 BGM 1:FOR PA=0 TO 13:PART PA,PA:NEXT PA
  117. 2150 MOUSE 5:MM_MI=MI:MEMO_F=1:GOSUB *PTMEMO
  118. 2160 II=I:FOR I=15 TO 0 STEP -1:GOSUB *PAL:FOR J=0 TO 512:NEXT:NEXT:I=II
  119. 2170 COLOR 0,0,0:CLS:PALETTE@
  120. 2180 RUN NAM_F$(I-1+MI)
  121. 2190 END
  122. 2200 '
  123. 2210 '        終了
  124. 2220 '
  125. 2230 *EXIT
  126. 2240 MOUSE 5:MM_MI=MI:MEMO_F=1:GOSUB *PTMEMO
  127. 2250 CLS 4:FOR I=15 TO 0 STEP -1:GOSUB *PAL:FOR J=0 TO 512:NEXT:NEXT
  128. 2260 COLOR 0,0,0:CLS : PALETTE@
  129. 2270 RUN "STAFF.BAS"
  130. 2280 END
  131. 2290 '
  132. 2300 '       ヘルプ 表示
  133. 2310 '
  134. 2320 *HELP
  135. 2330 CLS 4:COLOR CCOL:LINE(499,9)-STEP(33,33),XOR,%15,BF
  136. 2340 GOSUB *MOUSE_WAIT:LOCATE 0,4
  137. 2350 RESTORE *HELP_TEXT
  138. 2360 READ TXT$ : IF TXT$="///" THEN 2390
  139. 2370             PRINT SPC(4);TXT$
  140. 2380             GOTO 2360
  141. 2390 COLOR 2:LOCATE 20,20:PRINT "マウスのボタンをクリックしてください"
  142. 2400 GOSUB *MOUSE_CLECK
  143. 2410 COLOR 7:CLS 4:LINE(499,9)-STEP(33,33),XOR,%15,BF
  144. 2420 RETURN
  145. 2430 '
  146. 2440 '
  147. 2450 *MOUSE_CLECK
  148. 2460 WHILE MOUSE(2,0)=0 AND MOUSE(2,1)=0:WEND:GOSUB *MOUSE_WAIT:RETURN
  149. 2470 '
  150. 2480 *MOUSE_WAIT
  151. 2490 WHILE MOUSE(2,0) OR MOUSE(2,1):WEND:RETURN
  152. 2500 '
  153. 2510 '        マウス読み取り
  154. 2520 '
  155. 2530 *MAIN
  156. 2540 GOSUB *FILE_READ: GOSUB *LIST_UP
  157. 2550 *MAIN_LOOP
  158. 2560 IF MOUSE(2,1) THEN 2610
  159. 2570 IF MOUSE(2,0) THEN 2670
  160. 2580 GOTO *MAIN_LOOP
  161. 2590 '
  162. 2600 'ミギ ボタン
  163. 2610 Y=MOUSE(1):X=MOUSE(0)
  164. 2620 IF X=<20 OR X>=603 OR Y=<60 OR Y>=440 THEN *MAIN_LOOP
  165. 2630 I=INT((Y-60)/38)+1 : IF I>MY THEN *MAIN_LOOP
  166. 2640 GOSUB *DISPLAY:GOSUB *LIST_UP:GOTO *MAIN_LOOP
  167. 2650 '
  168. 2660 'ヒダリ ボタン
  169. 2670 Y=MOUSE(1):X=MOUSE(0)
  170. 2680 IF X=<20 OR X>=603 OR Y=<60 OR Y>=440 THEN 2700
  171. 2690 I=INT((Y-60)/38)+1 : IF I<=MY THEN GOSUB *EXECUTE:STOP
  172. 2700 IF X>545 AND X<576 AND Y>10 AND Y<41 THEN GOSUB *EXIT:STOP
  173. 2710 IF X>500 AND X<531 AND Y>10 AND Y<41 THEN GOSUB *HELP:GOSUB *LIST_UP
  174. 2720 IF BRX0<=X AND X<=BRX1 AND BRY0-20<Y AND Y<BRY0 THEN GOSUB *PAGEDOWN
  175. 2730 IF BRX0<=X AND X<=BRX1 AND BRY1<Y AND Y<BRY1+20 THEN GOSUB *PAGEUP
  176. 2740 IF BRX0<=X AND X<=BRX1 AND BRY0<=Y AND Y<=BRY1 THEN GOSUB *BAR
  177. 2750 IF MIOLD<>MI THEN GOSUB *LIST_UP:MIOLD=MI
  178. 2760 GOTO *MAIN_LOOP
  179. 2770 '
  180. 2780 *BAR
  181. 2790 WHILE MOUSE(2,0)
  182. 2800 Y=MOUSE(1)
  183. 2810 IF (Y-83)<(1670/MY1) THEN Y=83+1670/MY1 ELSE IF (417-Y)<(1670/MY1) THEN Y=417-1670/MY1
  184. 2820 MI=INT((Y-83-1670/MY1)/334*MY1)
  185. 2830 IF MIOLD<>MI THEN GOSUB *LIST_UP:MIOLD=MI
  186. 2840 WEND:RETURN
  187. 2850 '
  188. 2860 *PAGEDOWN
  189. 2870 IF MI>=1 THEN MI=MI-1
  190. 2880 RETURN
  191. 2890 *PAGEUP
  192. 2900 IF (MI+10)<MY THEN MI=MI+1
  193. 2910 RETURN
  194. 2920 '
  195. 2930 '        エラー処理
  196. 2940 '
  197. 2950 *エラー処理
  198. 2960 IF ERR=73 THEN RESUME NEXT
  199. 2970 IF 3020<=ERL AND ERL<=3260 THEN RESUME *PTMEMO_FAIL
  200. 2972 IF 3310<=ERL AND ERL<=3350 THEN RESUME *PTMEMO_FAIL
  201. 2980 IF ERL=3220 AND ERR=54 THEN RESUME 3280
  202. 2990 IF ERR<>63 THEN COLOR 2 : CLS : PRINT "**** ";ERL;"行にエラー発生!! ****":COLOR 7:STOP
  203. 3000 RESUME NEXT
  204. 3010 '
  205. 3020 '        アイコン データ 読出し 
  206. 3030 '
  207. 3040 *ICON_READ
  208. 3050 FOR I=0 TO 255 : READ PIC%(I) : NEXT I
  209. 3060 RETURN 
  210. 3070 '
  211. 3080 '         マウスパターン
  212. 3090 '
  213. 3100 *MOUSE_PTN
  214. 3110 AN$=CHR$(&H80,&HFF,&H00,&H0F,&H00,&H03,&H00,&H01,&H00,&H00,&H00,&H00,&H00,&H00,&H00,&H01,&H80,&H01,&H80,&H03,&H80,&H07,&H80,&H0F,&HC0,&H1F,&HC0,&H3F,&HE0,&H7F,&HF1,&HFF)
  215. 3120 DT$=CHR$(&H00,&H00,&H7F,&H00,&H7F,&HD0,&H7F,&HEC,&H7F,&HE6,&H7E,&HDA,&H7D,&H56,&H7B,&HAC,&H3D,&HFC,&H2E,&HF8,&H37,&HF0,&H3A,&HE0,&H1D,&HC0,&H1B,&H80,&H0E,&H00,&H00,&H00)
  216. 3130 MOUSE 2,AN$,DT$
  217. 3140 RETURN
  218. 3150 '
  219. 3160 '        メニューメモ
  220. 3170 '
  221. 3180 *PTMEMO
  222. 3190 OPEN "R",#1,"PTMEMO.DAT"
  223. 3200   FIELD #1,8 AS A$,8 AS B$,2 AS C$,2 AS D$,2 AS E$,2 AS F$,2 AS G$
  224. 3210   IF MEMO_F=1 THEN *MEMO_WRITE
  225. 3220   GET #1,1
  226. 3230   R_DAT$=A$            : R_TIM$=B$
  227. 3240   HM_VOL=CSNG(CVI(C$)) : HM_MI=CSNG(CVI(D$))
  228. 3250   MM_VOL=CSNG(CVI(E$)) : MM_MI=CSNG(CVI(F$))
  229. 3260   VL=CSNG(CVI(G$))
  230. 3270 *PTMEMO_FAIL
  231. 3280 CLOSE #1
  232. 3290 RETURN
  233. 3300 *MEMO_WRITE
  234. 3310   LSET A$=DATE$              : LSET B$=TIME$
  235. 3320   LSET C$=MKI$(CINT(HM_VOL)) : LSET D$=MKI$(CINT(HM_MI))
  236. 3330   LSET E$=MKI$(CINT(MM_VOL)) : LSET F$=MKI$(CINT(MM_MI))
  237. 3340   LSET G$=MKI$(CINT(VL))
  238. 3350   PUT #1,1 
  239. 3360 CLOSE #1
  240. 3370 RETURN
  241. 3380 '
  242. 3390 '        アイコン パターン
  243. 3400 '
  244. 3410 *ICON_PTN
  245. 3420 'HELP
  246. 3430 DATA -21846,-21846,-21846,-21846,-21846,-21846,-21846,-21846
  247. 3440 DATA -21846,-21846,-21846,-21846,-21846,-21846,-21846,-21846
  248. 3450 DATA -24406,-22006,-24576,-22006, 170,-21856,-21846,-21846
  249. 3460 DATA -24406,-22006,-21856,-22006,-24406,-22006,-21846,-21846
  250. 3470 DATA  170,-22016,-24576,-22006,-24406,-22006, 8874,-21846
  251. 3480 DATA -24406,-22006,-21856,-22006, 170,-21856, 8746,-21982
  252. 3490 DATA -24406,-22006,-24576, 10,-24406,-21846,-21974,-24022
  253. 3500 DATA -21846,-21846,-21846,-21846,-21846,-21846,-21846,-24022
  254. 3510 DATA -21846, 170,-21856, 2730,-24576,-21846,-21846,-24022
  255. 3520 DATA -21846, 26112,-22010, 24746, 1638,-21856, 8746,-21982
  256. 3530 DATA  2730, 4454, 97, 24586, 24849,-22010,-24022,-21846
  257. 3540 DATA  24746, 4369,-24479, 24736, 4369,-24474,-21846,-21846
  258. 3550 DATA  24746, 4369, 97, 26218, 6817,-24479,-21854,-21846
  259. 3560 DATA  24746,-21999, 26138, 26214, 4518, 8289,-21982,-21846
  260. 3570 DATA  24746,-21999, 24682, 26118, 4358,-24479,-21854,-21846
  261. 3580 DATA  2730, 2582, 24576, 6, 24678,-22010,-21846,-21846
  262. 3590 DATA  2730, 24678,-24480, 1546, 102,-21856,-21846,-21846
  263. 3600 DATA -21846, 24576, 2726, 27296,-24474,-21846,-21846,-21846
  264. 3610 DATA -21846, 24746,-24576, 10,-24474,-21846,-21846,-21846
  265. 3620 DATA -21846, 170,-24474, 10,-22010, 2730,-24576,-21846
  266. 3630 DATA -21846, 2730, 0,-21856,-21856, 2730, 2730,-21846
  267. 3640 DATA -21846, 170, 24678, 24582,-24570, 2730,-21846,-21856
  268. 3650 DATA -21846, 26122, 24576, 24678, 1638,-21856,-21856,-21846
  269. 3660 DATA -21846, 26122, 1632,-24576, 26118,-21856,-21856,-21846
  270. 3670 DATA -21846, 24586,-24474,-21846, 26118,-21856,-22006,-21846
  271. 3680 DATA -21846, 170,-21914,-25942, 1536,-22016,-22006,-21846
  272. 3690 DATA  170,-24576,-21920,-26326,-24574,-22016,-22006,-21846
  273. 3700 DATA -24566, 2714, 26208, 34, 0, 10,-21856,-21846
  274. 3710 DATA -22262,-26215, 1642,-28672,-21863,-21856,-21846,-21846
  275. 3720 DATA -28502,-26215, 2457, 2314, 2313,-21856,-21846,-21846
  276. 3730 DATA  2730, 2304,-24576, 10, 0,-21856,-21846,-21846
  277. 3740 DATA -21846,-21846,-21846,-21846,-21846,-21846,-21846,-21846
  278. 3750 'FDISC
  279. 3760 'EXIT
  280. 3770 DATA -21846,-21846,-21846,-21846,-21846,-21846,-21846,-21846
  281. 3780 DATA -21846,-21846,-21846,-21846,-21846,-21846,-21846,-21846
  282. 3790 DATA -21846,-21846,-21846,-21846,-21846,-21846,-21846,-21846
  283. 3800 DATA -21846, 0,-24406,-24406,-22006, 0,-21856,-21846
  284. 3810 DATA -21846,-21856, 2730,-22006,-22006,-24406,-21846,-21846
  285. 3820 DATA -21846,-24576,-21846,-21856,-22006,-24406,-21846,-21846
  286. 3830 DATA -21846,-21856, 2730,-22006,-22006,-24406,-21846,-21846
  287. 3840 DATA -21846, 0,-24406,-24406,-22006,-24406,-21846,-21846
  288. 3850 DATA -21846,-21846,-21846,-21846,-21846,-21846,-21846,-21846
  289. 3860 DATA -21846,-21846,-21846,-21846,-21846,-21846,-21846,-21846
  290. 3870 DATA -21846, 170,-21856,-21846,-21846,-21846,-21846,-21846
  291. 3880 DATA -21846, 28842,-24569,-21846,-21846,-21846,-21846,-21846
  292. 3890 DATA -21846, 2730, 1911,-21856,-21846,-21846,-21846,-21846
  293. 3900 DATA -21846, 2730, 30071,-24569,-21846,-21846,-21846,-21846
  294. 3910 DATA -21846,-21846, 21872, 1909,-21856,-21846,-21846,-21846
  295. 3920 DATA -21846,-21846, 22384, 30069, 7,-24576,-21846,-21846
  296. 3930 DATA -21846,-21846, 22282, 21845, 14167,-24457,-21846,-21846
  297. 3940 DATA -21846,-21846, 30474, 22391, 13685, 1911,-21846,-21846
  298. 3950 DATA -21846, 0, 28672, 30583, 30039, 1907,-21846,-21846
  299. 3960 DATA -21846,-21856, 28825, 30583, 30071, 28787,-21856,-21846
  300. 3970 DATA -21846,-22007, 2458, 30583, 30583, 1847,-21856,-21846
  301. 3980 DATA -21846,-22009, 2474, 30583, 30039, 30519,-22009,-21846
  302. 3990 DATA -21846,-24432,-26214, 30464, 21879, 29559,-22009,-21846
  303. 4000 DATA -21846,-24454,-25942, 153, 30583, 29557,-24457,-21846
  304. 4010 DATA -21846, 2314,-26198,-26215, 30464, 14199,-24569,-21846
  305. 4020 DATA -21846, 1962,-21846,-26215, 1177, 14199, 1799,-21846
  306. 4030 DATA -21846,-28502,-25952,-26214,-26215, 30464, 1907,-21846
  307. 4040 DATA -21846, 31402,-21856,-25958,-26215, 153, 30579,-21856
  308. 4050 DATA -21846, 2730, 9, 0, 0, 0, 0,-21856
  309. 4060 DATA -21846,-21846, 31351, 31354, 31354, 31354, 31354,-21856
  310. 4070 DATA -21846,-21846, 0, 0, 0, 0, 0,-21856
  311. 4080 DATA -21846,-21846,-21846,-21846,-21846,-21846,-21846,-21846
  312. 4090 '
  313. 4100 '         HELP TEXT
  314. 4110 '
  315. 4120 *HELP_TEXT
  316. 4130 DATA ""
  317. 4140 DATA ""
  318. 4150 DATA "●  アイコンについて"
  319. 4160 DATA " HELP - このアイコンです。操作の説明などを表示。"
  320. 4170 DATA  " EXIT - 終了します。"
  321. 4180 DATA  ""
  322. 4190 DATA  "● マウス操作について"
  323. 4200 DATA  " ・アイコンとスクロールバーの操作は、左クリックにより行います。"
  324. 4210 DATA  " ・メニュー内容を左クリックすると、プログラムを読み込みます。"
  325. 4220 DATA  " ・メニュー内容を右クリックすると、ボタンを押しているあいだ、内容を"
  326. 4230 DATA  "  表示します。"
  327. 4240 DATA  ""
  328. 4250 DATA  "● 音楽プログラムの実行を中断するには"
  329. 4260 DATA  " PF1キーを押すと、演奏を中断し、"
  330. 4262 DATA  " メニューに戻ります。"
  331. 4270 DATA  ///
  332. 4280 '
  333. 4290 '
  334. 4300 *PICSYS_MUSIC_F
  335. 4310 DATA Desolate City -荒れ果てた街-
  336. 4320 DATA Kazuya Shimada,,"DESOCITY.BAS"
  337. 4330 DATA The Greatest Savior
  338. 4340 DATA Kazuya Shimada,,"G_SAVIOR.BAS"
  339. 4350 DATA If I meet you again
  340. 4360 DATA Kazuya Shimada,,"IMEETYOU.BAS"
  341. 4370 DATA Dancing all sadness
  342. 4380 DATA Shogo Okamoto,,"LONELY.BAS"
  343. 4390 DATA THE LIGHT SOLDIER
  344. 4400 DATA Kazuya Shimada,,"LSOLDIER.BAS"
  345. 4470 DATA Through the Milkey Way
  346. 4480 DATA 菅井つばめ,,"MILKYWAY.BAS"
  347. 4490 DATA Moon on lake
  348. 4500 DATA 菅井つばめ,,"MOON.BAS"
  349. 4510 DATA A Crazy Narcissist
  350. 4520 DATA Kazuya Shimada,,"NARCISST.BAS"
  351. 4530 DATA W.MoMoオリジナル1
  352. 4540 DATA W.MoMo,,"ORIGINAL.BAS"
  353. 4550 DATA Peace inthe terror
  354. 4560 DATA Kazuya Shimada,,"PEACE_IT.BAS"
  355. 4570 DATA "ROCK'N PINBALL"
  356. 4580 DATA 菅井つばめ,,"PINBALL.BAS"
  357. 4590 DATA Sounds of summer
  358. 4600 DATA 菅井つばめ,,"SOUNDS.BAS"
  359. 4610 DATA The Strongest Challenger
  360. 4620 DATA Kazuya Shimada,,"STR_CHR.BAS"
  361. 4630 DATA The End Of The Longest Voyage
  362. 4640 DATA Kazuya Shimada,,"VOYAGE.BAS"
  363. 4650 DATA White Grass
  364. 4660 DATA 菅井つばめ,,"WHITE.BAS"
  365. 4670 DATA クリスマス・イブ
  366. 4680 DATA SKEMARO,,"XMAS.BAS"
  367. 4690 DATA こたつを買ってうれしかった
  368. 4700 DATA SKEMARO,,"KOTATSU.BAS"
  369. 4710 DATA エリ-ゼのために
  370. 4720 DATA W.MoMo,L.van.Beethoven,"ERI.BAS"
  371. 4730 DATA 貴婦人の乗馬
  372. 4740 DATA W.MoMo,BURGMULLER,"KIFU.BAS"
  373. 4790 DATA KNIGHT(未使用曲)
  374. 4800 DATA SKEMARO,,"KNIGHTM1.BAS"
  375. 4810 DATA KNIGHT(未使用曲)
  376. 4820 DATA SKEMARO,,"KNIGHTM2.BAS"
  377. 4830 DATA KNIGHT(未使用曲)
  378. 4840 DATA SKEMARO,,"KNIGHTM3.BAS"
  379. 4850 DATA 無題
  380. 4860 DATA SKEMARO,,"OPENING.BAS"
  381. 4870 DATA KNIGHT(未使用曲)
  382. 4880 DATA SKEMARO,,"SKE4.BAS"
  383. 4890 DATA SKEMARO二十歳の春
  384. 4900 DATA SKEMARO,,"SKEMARO.BAS"
  385. 4910 DATA END
  386. 4920 *PAL
  387. 4930   PALETTE  0,[ 0*I, 0*I, 0*I]
  388. 4940   PALETTE  1,[ 0*I, 0*I, 8*I]
  389. 4950   PALETTE  2,[ 0*I, 8*I, 0*I]
  390. 4960   PALETTE  3,[ 0*I, 8*I, 8*I]
  391. 4970   PALETTE  4,[11*I, 0*I, 0*I]
  392. 4980   PALETTE  5,[ 8*I, 0*I, 8*I]
  393. 4990   PALETTE  6,[ 8*I, 8*I, 0*I]
  394. 5000   PALETTE  7,[10*I, 7*I,12*I]
  395. 5010   PALETTE  8,[ 5*I, 3*I, 14*I]
  396. 5020   PALETTE  9,[ 0*I, 0*I,15*I]
  397. 5030   PALETTE 10,[ 0*I,15*I, 0*I]
  398. 5040   PALETTE 11,[11*I,15*I,15*I]
  399. 5050   PALETTE 12,[15*I, 0*I, 0*I]
  400. 5060   PALETTE 13,[0*I,15*I,0*I]
  401. 5070   PALETTE 14,[15*I,15*I, 0*I]
  402. 5080   PALETTE 15,[15*I,15*I,15*I]
  403. 5090 RETURN
  404. 5100 '
  405. 5110 ' プロポーショナル表示ルーチン         "PROP.BAS"
  406. 5120 '
  407. 5130 '                                   作成 岡本正悟 (1991.06.09)
  408. 5140 '
  409. 5150 'GOSUB *PROP_INITIAL ←こいつを使用前に一度だけ実行しておく
  410. 5160 ' - 受渡しパラメータ ( []内はデフォルト値 *PROP_VAL_INI 参照 ) -
  411. 5170 'PROP_X%=x座標 [-] :PROP_Y%=y座標  [-] :PROP$=表示文字列
  412. 5180 'PROP0!=横倍率  [1] :PROP1!=縦倍率   [1] :PROP2%=パレット番号 [-]
  413. 5190 'PROP3%=フォント[0] :PROP4%=文字間隔 [0]
  414. 5200 'PROP5%=スイッチ (0=プロポーショナル,1=ノーマル) [0]
  415. 5210 'GOSUB *PROP_PRINT ←こいつで呼び出す
  416. 5220 ' - 復帰情報 -
  417. 5230 'PROP_RET%=文字列ドットスケールサイズ
  418. 5240 '
  419. 5250 *PROP_INITIAL
  420. 5260  PROP_HALF%=1         ' ( 0=半角データ未定義時,1=半角データ定義時 )
  421. 5270  PROP_MAX_BLOCK%=7    ' ( 定義データブロックの上限値 )
  422. 5280  DIM PROP_DAT%(PROP_HALF%*96+PROP_MAX_BLOCK%*48-1)
  423. 5290  PROP_TAD&=VARPTR(PROP_DAT%(0)):RESTORE *PROP_DATA
  424. 5300  FOR PROP_P%=0 TO PROP_HALF%*192+PROP_MAX_BLOCK%*96-1
  425. 5310    READ DAT$:POKE PROP_TAD&+PROP_P%,VAL("&H"+DAT$)
  426. 5320  NEXT
  427. 5330  GOSUB *PROP_VAL_INI
  428. 5340  RETURN
  429. 5350 *PROP_VAL_INI
  430. 5360  PROP0!=1:PROP1!=1:PROP2%=15:PROP3%=0:PROP4%=0:PROP5%=0
  431. 5370  RETURN
  432. 5380 *PROP_PRINT
  433. 5390  ON PROP5% GOTO *PROP_NORMAL
  434. 5400  PROP_STACK%=I% : PROP_RET%=PROP_X%
  435. 5410  FOR I%=1 TO KLEN(PROP$)
  436. 5420    PROP_CODE$=KMID$(PROP$,I%,1):PROP_CODE%=KTYPE(PROP$,I%)
  437. 5430    PROP_X1%=0:PROP_SIZE%=(8+PROP_CODE%*8)*PROP0!-1
  438. 5440    IF PROP_HALF%=1 AND PROP_CODE%=0 THEN                                       PROP_OFS%=ASC(PROP_CODE$)-&H20                                             :PROP_OFS%=PROP_OFS%-(PROP_OFS%\128)*32                                     :GOSUB *PROP_PRINT2
  439. 5450    IF PROP_CODE%=1 THEN PROP_OFS%=JIS(PROP_CODE$)                             :IF JIS(PROP_CODE$)<((PROP_MAX_BLOCK%-1)*256+&H217F) THEN                    PROP_OFS%=PROP_OFS%-&H2120:PROP_OFS%=PROP_OFS%-(PROP_OFS%\256)*160         :GOSUB *PROP_PRINT2
  440. 5460    PROP_X1%=PROP_X%-PROP_X1%
  441. 5470    SYMBOL(PROP_X1%,PROP_Y%),PROP_CODE$,PROP0!,PROP1!,%PROP2%,,,PROP3%
  442. 5480    PROP_X%=PROP_X%+PROP_SIZE%+PROP4%+1
  443. 5490  NEXT
  444. 5500  GOSUB *PROP_VAL_INI:I%=PROP_STACK% : PROP_RET%=PROP_X%-PROP_RET%
  445. 5510  RETURN
  446. 5520 *PROP_NORMAL
  447. 5530  SYMBOL(PROP_X%,PROP_Y%),PROP$,PROP0!,PROP1!,%PROP2%,,,PROP3%,PROP4%
  448. 5540  PROP_X%=(KLEN(PROP$,1)*8+KLEN(PROP$,2)*16)*PROP0!
  449. 5550  PROP_RET%=PROP_X%+KLEN(PROP$)*PROP4%
  450. 5560  RETURN
  451. 5570 *PROP_PRINT2
  452. 5580  PROP_DAT%=PEEK(PROP_TAD&+192*PROP_CODE%*PROP_HALF%+PROP_OFS%)
  453. 5590  PROP_X1%=(PROP_DAT%\16)*PROP0!:PROP_SIZE%=(PROP_DAT% MOD 16+1)*PROP0!
  454. 5600  RETURN
  455. 5610 *PROP_DATA
  456. 5620 ' 半角 英数記号
  457. 5630 DATA 04,23,06,06,07,06,07,23,23,13,07,15,22,15,14,07'CHR$(&H20-&H2F)
  458. 5640 DATA 06,15,06,06,06,06,06,06,06,06,14,13,06,14,06,06'CHR$(&H30-&H3F)
  459. 5650 DATA 07,06,06,06,06,06,06,06,06,23,06,06,06,07,06,06'CHR$(&H40-&H4F)
  460. 5660 DATA 06,06,06,06,07,06,07,07,07,07,06,23,07,23,15,06'CHR$(&H50-&H5F)
  461. 5670 DATA 23,06,06,06,06,06,06,06,06,23,14,06,23,07,06,06'CHR$(&H60-&H6F)
  462. 5680 DATA 06,06,15,06,06,06,07,07,06,06,06,23,31,13,06,07'CHR$(&H70-&H7F)
  463. 5690 ' 半角 仮名
  464. 5700 DATA 0F,14,24,04,15,15,06,06,06,15,15,15,06,06,15,15'CHR$(&HA0-&HAF)
  465. 5710 DATA 07,06,06,07,07,06,06,15,06,06,06,06,06,06,06,06'CHR$(&HB0-&HBF)
  466. 5720 DATA 06,07,07,07,06,07,07,07,07,14,07,06,06,07,07,06'CHR$(&HC0-&HCF)
  467. 5730 DATA 06,07,06,06,06,07,06,06,15,07,06,06,07,07,14,13'CHR$(&HD0-&HDF)
  468. 5740 DATA 07,07,07,07,07,07,07,07,07,07,07,07,07,07,07,07'CHR$(&HE0-&HEF)
  469. 5750 DATA 07,07,07,06,06,07,07,07,07,07,07,07,07,07,07,07'CHR$(&HF0-&HFF)
  470. 5760 ' 記号          ( データブロック1 )
  471. 5770 DATA 0F,08,06,06,03,03,48,46,46,39,55,07,05,55,55,38'(&H2120-&H212F)
  472. 5780 DATA 47,0F,0F,47,48,47,49,38,0F,0D,1C,0F,0F,0F,54,0F'(&H2130-&H213F)
  473. 5790 DATA 0F,0F,0F,0F,0F,0F,B4,04,87,07,87,07,96,06,96,06'(&H2140-&H214F)
  474. 5800 DATA 96,06,96,06,69,0A,87,07,78,08,96,06,0F,0F,0F,0F'(&H2150-&H215F)
  475. 5810 DATA 0F,0F,0F,0F,0F,0F,0F,0F,0F,0E,2B,06,04,07,1C,1D'(&H2160-&H216F)
  476. 5820 DATA 39,38,2B,0F,0F,3B,39,1E,47,0F,0F,0F,0F,0F,0F,0F'(&H2170-&H217F)
  477. 5830 ' 記号          ( データブロック2 )
  478. 5840 DATA 0F,0F,0F,0F,0F,0F,0F,0F,0F,0F,0F,0F,47,47,0F,0F'(&H2220-&H222F)
  479. 5850 DATA 1E,4B,2D,2D,1E,2D,2D,2D,2D,2D,2B,2B,2B,2B,2B,2B'(&H2230-&H223F)
  480. 5860 DATA 2B,2B,0F,0F,0F,0F,0F,0F,0F,0F,0F,0F,0F,0F,0F,0F'(&H2240-&H224F)
  481. 5870 DATA 0F,0F,0F,0F,0F,0F,0F,0F,0F,0F,0F,0F,2B,2B,1D,29'(&H2250-&H225F)
  482. 5880 DATA 2B,0F,0F,0F,0F,0F,0F,0F,0F,56,2B,0F,0F,0F,0F,0F'(&H2260-&H226F)
  483. 5890 DATA 0F,0F,1D,0F,39,46,2A,39,29,0F,0F,0F,0F,0F,0F,0F'(&H2270-&H227F)
  484. 5900 ' 英・数字      ( データブロック3 )
  485. 5910 DATA 0F,0F,0F,0F,0F,0F,0F,0F,0F,0F,0F,0F,0F,0F,0F,0F'(&H2320-&H232F)
  486. 5920 DATA 39,47,39,39,39,39,39,39,39,39,0F,0F,0F,0F,0F,0F'(&H2330-&H233F)
  487. 5930 DATA 0F,1D,2A,3A,2B,2B,2B,2B,2C,55,48,1D,2B,0F,1D,2B'(&H2340-&H234F)
  488. 5940 DATA 2A,2C,2B,39,2B,1D,1D,0F,2B,1D,2A,00,00,00,00,00'(&H2350-&H235F)
  489. 5950 DATA 00,47,48,47,38,47,46,39,48,63,54,39,63,1D,39,47'(&H2360-&H236F)
  490. 5960 DATA 48,38,57,47,55,3A,39,1D,39,39,38,00,0F,0F,0F,0F'(&H2370-&H237F)
  491. 5970 ' ひらがな      ( データブロック4 )
  492. 5980 DATA 0F,39,1C,39,1D,47,39,39,1D,39,1D,1E,1E,2A,2D,46'(&H2420-&H242F)
  493. 5990 DATA 49,1D,1E,2C,2C,2B,1E,3B,3B,1F,1F,1F,1F,1D,1E,1D'(&H2430-&H243F)
  494. 6000 DATA 1E,2C,2D,2A,0E,0F,0E,0E,2B,2C,1D,1D,1E,1D,1D,1D'(&H2440-&H244F)
  495. 6010 DATA 1E,1E,1D,1E,1E,0E,0E,0F,0F,0F,0F,1D,1E,1E,1B,1D'(&H2450-&H245F)
  496. 6020 DATA 1E,1D,2B,2A,0E,3A,1D,39,1C,3A,39,2B,1E,2B,2A,1D'(&H2460-&H246F)
  497. 6030 DATA 1D,1D,1D,1D,3C,0F,0F,0F,0F,0F,0F,0F,0F,0F,0F,0F'(&H2470-&H247F)
  498. 6040 ' カタカナ      ( データブロック5 )
  499. 6050 DATA 0F,39,2B,37,29,48,2A,39,1D,39,1C,1B,1E,1C,1E,2A'(&H2520-&H252F)
  500. 6060 DATA 2D,1C,1E,39,3C,1D,1E,3B,3B,2B,2D,1C,1D,39,1E,2A'(&H2530-&H253F)
  501. 6070 DATA 1E,1C,0F,39,2B,1E,1C,0F,56,59,1C,1D,1B,1C,18,1D'(&H2540-&H254F)
  502. 6080 DATA 1E,1E,39,3B,3C,2A,1E,1E,1D,1D,1D,2B,2C,2C,1C,47'(&H2550-&H255F)
  503. 6090 DATA 1D,28,1C,39,1C,39,1D,48,39,3A,47,1E,3B,3A,38,2A'(&H2560-&H256F)
  504. 6100 DATA 1C,1D,2A,3B,1E,39,2A,0F,0F,0F,0F,0F,0F,0F,0F,0F'(&H2570-&H257F)
  505. 6110 ' ギリシャ文字  ( データブロック6 )
  506. 6120 DATA 0F,1D,2A,2A,1D,2B,3A,2C,2B,55,1C,1D,0F,1D,2B,2B'(&H2620-&H262F)
  507. 6130 DATA 2B,2B,2B,2B,2B,2B,1D,1D,2B,0F,0F,0F,0F,0F,0F,0F'(&H2630-&H263F)
  508. 6140 DATA 0F,2B,39,3A,49,48,39,39,38,55,39,39,2A,48,39,47'(&H2640-&H264F)
  509. 6150 DATA 3A,38,3A,2A,38,39,39,39,2B,0F,0F,0F,0F,0F,0F,0F'(&H2650-&H265F)
  510. 6160 DATA 0F,0F,0F,0F,0F,0F,0F,0F,0F,0F,0F,0F,0F,0F,0F,0F'(&H2660-&H266F)
  511. 6170 DATA 0F,0F,0F,0F,0F,0F,0F,0F,0F,0F,0F,0F,0F,0F,0F,0F'(&H2670-&H267F)
  512. 6180 ' ロシア文字    ( データブロック7 )
  513. 6190 DATA 0F,2B,39,39,39,2B,3A,3A,1D,39,2B,2B,2B,1B,1D,2B'(&H2720-&H272F)
  514. 6200 DATA 2B,2B,39,2A,2B,2B,2B,2B,2B,2A,1D,1E,1C,1D,39,3A'(&H2730-&H273F)
  515. 6210 DATA 1C,2A,0F,0F,0F,0F,0F,0F,0F,0F,0F,0F,0F,0F,0F,0F'(&H2740-&H274F)
  516. 6220 DATA 0F,38,38,38,38,39,38,38,2B,38,39,39,39,2A,2B,39'(&H2750-&H275F)
  517. 6230 DATA 38,39,38,38,39,39,2B,39,3A,39,2B,2B,2A,2B,48,39'(&H2760-&H276F)
  518. 6240 DATA 2A,39,0F,0F,0F,0F,0F,0F,0F,0F,0F,0F,0F,0F,0F,0F'(&H2770-&H277F)
  519.